home *** CD-ROM | disk | FTP | other *** search
- /*
- File: ODBindng.cpp
-
- Contains: SOM Implementation for Binding class.
-
- Owned by: Caia Grisar
-
- Copyright: © 1993 - 1996 by Apple Computer, Inc., all rights reserved.
-
- Change History (most recent first):
-
- <5> 6/27/96 RA Don't dereference null structs
- <4> 6/24/96 RA T10025: Made new Binding API CORBA
- compliant. Added ODGetFileFromEditor
- method.
- <3> 6/21/96 RA T10025: Added new Binding API
- <13> 10/8/95 TJ Fixes Recomended by Refball
- <12> 8/3/95 RR #1257260: Collapse B classes. Remove
- somInit methods. Don't call IsInitialized
- or SubclassResponsibility
- <11> 7/24/95 CG 1270320: Memory leak fixes.
- <10> 5/18/95 CG #1241621 BB: Need to implement Purge for
- Binding subsystem objects.
- <9> 5/17/95 VL 1170098: Added private-by-convention
- ConstructNoPart.
- <8> 5/1/95 CG #1241628 BB: SOM_TRY blocks needed in
- Binding SOM methods. #1243669 XMP in
- ODBindng.cpp ifdef
- <7> 4/26/95 CG last check in comment should have been :
- 1241628 SOM_TRY blocks needed in Binding
- SOM methods.
- <6> 4/26/95 CG 1211082 BB: 5$ Bugs need to be evaluated
- and removed from Core
- <5> 12/13/94 CG #1206024: Added function prefix to .idl
- file.
- <4> 8/24/94 CG #1181622: Updated file ownership.
- <3> 8/17/94 CG #1181519: The Binding helper object was not
- getting initialized in InitBinding.
- <2> 7/1/94 CG Check for somSelf->IsInitialized in
- InitBinding.
- <1> 6/20/94 CG first checked in
- To Do:
- */
-
- #define ODBinding_Class_Source
- #define VARIABLE_MACROS
- #include <ODBindng.xih>
-
- #ifndef _BINDNGH_
- #include "BindngH.h"
- #endif
-
- #ifndef SOM_ODSession_xh
- #include <ODSessn.xh>
- #endif
-
- #ifndef SOM_Module_Apple_defined
- #include <NoPart.xh>
- #endif
-
- #ifndef SOM_ODNameSpaceManager_xh
- #include <NmSpcMg.xh>
- #endif
-
- #ifndef SOM_ODObjectNameSpace_xh
- #include <ObjectNS.xh>
- #endif
-
- #ifndef SOM_ODObjectIterator_xh
- #include <ObjctItr.xh>
- #endif
-
- #ifndef SOM_ODTypeList_xh
- #include <TypeList.xh>
- #endif
-
- #ifndef SOM_ODTypeListIterator_xh
- #include <TypLsItr.xh>
- #endif
-
- #ifndef SOM_ODStorageSystem_xh
- #include <ODStor.xh>
- #endif
-
- #ifndef SOM_ODValueNameSpace_xh
- #include <ValueNS.xh>
- #endif
-
- #ifndef _ISOSTR_
- #include "ISOStr.h"
- #endif
-
- #ifndef _NMSPCUTL_
- #include "NmSpcUtl.h"
- #endif
-
- #ifndef _BARRAY_
- #include "BArray.h"
- #endif
-
-
- SOM_Scope ODBoolean SOMLINK ODBindingGetODFileSpecFromEditor(ODBinding *somSelf, Environment *ev,
- ODEditor editor,
- ODByteArray* fileSpec)
- {
- ODBindingData *somThis = ODBindingGetData(somSelf);
- ODBindingMethodDebug("ODBinding","ODBindingGetFileFromEditor");
-
- ODBoolean result = kODFalse;
-
- SOM_TRY
-
- Environment* ev = somGetGlobalEnvironment();
-
- ODValueNameSpace* fileFromEditorNS =
- (ODValueNameSpace*)_fNmSpcMgr->HasNameSpace( ev, "FileFromEditor" );
-
- if ( fileFromEditorNS )
- {
- ODFileSpec* fsspecPtr = kODNULL;
- ODULong valueLength;
-
- result = ValueNameSpaceGetEntry( fileFromEditorNS,
- ev, editor, (ODPtr*) &fsspecPtr, &valueLength);
- if (result)
- {
- UseByteArray(fileSpec, fsspecPtr, sizeof(ODFileSpec)); // place contents of FSSpec into byteArray
- }
- else
- fileSpec->_buffer = kODNULL;
- }
-
- SOM_CATCH_ALL
- SOM_ENDTRY
-
- return result;
-
- }
-
- SOM_Scope void SOMLINK ODBindingInitBinding(ODBinding *somSelf, Environment *ev,
- ODSession* session)
- {
- ODBindingData *somThis = ODBindingGetData(somSelf);
- ODBindingMethodDebug("ODBinding","InitBinding");
-
- SOM_TRY
-
- somSelf->InitObject(ev);
-
- _fSession = session;
- _fNmSpcMgr = session->GetNameSpaceManager(ev);
- _fBinding = new Binding();
- _fBinding->InitBinding(_fSession);
-
- SOM_CATCH_ALL
- SOM_ENDTRY
- }
-
- SOM_Scope ODPart* SOMLINK ODBindingConstructNoPart(ODBinding *somSelf, Environment *ev)
- {
- ODBindingData *somThis = ODBindingGetData(somSelf);
- ODBindingMethodDebug("ODBinding","ConstructNoPart");
-
- ODPart* noPart;
-
- SOM_TRY
-
- noPart = new Apple_NoPart;
-
- SOM_CATCH_ALL
- noPart = kODNULL;
- SOM_ENDTRY
- return noPart;
- }
-
- SOM_Scope ODEditor SOMLINK ODBindingChooseEditorForPart(ODBinding *somSelf, Environment *ev,
- ODStorageUnit* thePartSU,
- ODType newKind)
- {
- ODBindingData *somThis = ODBindingGetData(somSelf);
- ODBindingMethodDebug("ODBinding","ChooseEditorForPart");
-
- ODEditor returnVal = kODNULL;
-
- SOM_TRY
-
- returnVal = _fBinding->ChooseEditorForPart(thePartSU, newKind);
-
- SOM_CATCH_ALL
- SOM_ENDTRY
-
- return (returnVal);
- }
-
- SOM_Scope ODContainerSuite SOMLINK ODBindingGetContainerSuite(ODBinding *somSelf, Environment *ev,
- ODContainerType containerType)
- {
- ODBindingData *somThis = ODBindingGetData(somSelf);
- ODBindingMethodDebug("ODBinding","GetContainerSuite");
-
- ODContainerSuite returnVal = kODNULL;
-
- SOM_TRY
-
- returnVal = _fBinding->GetContainerSuite( containerType );
-
- SOM_CATCH_ALL
- SOM_ENDTRY
-
- return (returnVal);
- }
-
- SOM_Scope ODTypeList* SOMLINK ODBindingGetAllCategoriesForKind(ODBinding *somSelf, Environment *ev,
- ODKind kind)
- {
- ODBindingData *somThis = ODBindingGetData(somSelf);
- ODBindingMethodDebug("ODBinding","ODBindingGetAllCategoriesForKind");
-
- ODTypeList* categoryList = kODNULL;
-
- SOM_TRY
- // look it up in the kindcategory namespace
- ODObjectNameSpace* kindCategoryNameSpace =
- (ODObjectNameSpace*)_fNmSpcMgr->HasNameSpace( ev, kODKind );
-
- if (kindCategoryNameSpace)
- {
- if (kindCategoryNameSpace->GetEntry(ev, (ODISOStr)kind,
- (ODObject**)&categoryList ))
- return categoryList;
- else
- return kODNULL;
- }
-
- SOM_CATCH_ALL
- SOM_ENDTRY
-
- return categoryList;
- }
-
-
- SOM_Scope ODBoolean SOMLINK ODBindingGetAllEditorsForKind(ODBinding *somSelf, Environment *ev,
- ODKind kind,
- ODTypeList* editorList)
- {
- ODBindingData *somThis = ODBindingGetData(somSelf);
- ODBindingMethodDebug("ODBinding","ODBindingGetAllEditorsForKind");
-
- ODTypeList* kindsList = kODNULL;
- ODEditor editor = kODNULL; ODVolatile(editor);
- ODObjectIterator* iter = kODNULL; ODVolatile(iter);
- ODULong len = 0;
- ODBoolean retval = kODFalse;
-
- SOM_TRY
-
- if (editorList)
- {
- // get the editorkinds namespace
- ODObjectNameSpace* editorkindsNameSpace =
- (ODObjectNameSpace*)_fNmSpcMgr->HasNameSpace( ev, kODEditorKinds );
-
- if (editorkindsNameSpace)
- {
- // iterate through editorKinds namespace
- iter = editorkindsNameSpace->CreateIterator(ev) ;
- for (iter->First(ev, (ODISOStr*)&editor, (ODObject**)&kindsList, &len);
- iter->IsNotComplete(ev);
- iter->Next(ev, (ODISOStr*)&editor, (ODObject**)&kindsList, &len))
- {
- if ( kindsList )
- {
- if ( kindsList->Contains(ev, kind) )
- {
- editorList->AddLast(ev, editor);
- retval = kODTrue;
- }
- ODDisposePtr( editor );
- }
- }
- ODDeleteObject( iter );
- }
- }
- SOM_CATCH_ALL
- ODDeleteObject(iter);
- ODDeleteObject(editor);
- SOM_ENDTRY
-
- return retval;
- }
-
- SOM_Scope void SOMLINK ODBindingGetAllKindsForEditor(ODBinding *somSelf, Environment *ev,
- ODEditor editor,
- ODTypeList* kindList)
- {
- ODBindingData *somThis = ODBindingGetData(somSelf);
- ODBindingMethodDebug("ODBinding","ODBindingGetAllKindsForEditor");
-
- ODTypeListIterator* iter = kODNULL; ODVolatile(iter);
-
- SOM_TRY
-
- if (kindList)
- {
- // get the editorkinds namespace
- ODObjectNameSpace* editorkindsNameSpace =
- (ODObjectNameSpace*)_fNmSpcMgr->HasNameSpace( ev, kODEditorKinds );
-
- if (editorkindsNameSpace)
- {
- ODTypeList* nsKindsList = kODNULL;
- ODType kind = kODNULL;
- if(editorkindsNameSpace->GetEntry( ev, (ODType)editor,
- (ODObject**)&nsKindsList ))
- {
- iter = nsKindsList->CreateTypeListIterator(ev);
- for (kind = iter->First(ev);
- iter->IsNotComplete(ev);
- kind = iter->Next(ev))
- {
- kindList->AddLast(ev, kind);
- ODDisposePtr(kind);
- }
-
- ODDeleteObject( iter );
- }
- }
- }
- SOM_CATCH_ALL
- ODDeleteObject(iter);
- SOM_ENDTRY
- }
-
- SOM_Scope ODBoolean SOMLINK ODBindingGetAllEditorsForCategory(ODBinding *somSelf, Environment *ev,
- ODCategory category,
- ODTypeList* editorList)
- {
- ODBindingData *somThis = ODBindingGetData(somSelf);
- ODBindingMethodDebug("ODBinding","ODBindingGetAllEditorsForCategory");
-
- ODBoolean retval = kODFalse;
- ODTypeListIterator* esi = kODNULL; ODVolatile(esi);
- ODObjectIterator* iter = kODNULL; ODVolatile(iter);
- ODTypeList* thisEditorSet = kODNULL; ODVolatile(thisEditorSet);
- ODULong len;
-
- SOM_TRY
-
- ODObjectNameSpace* kindCategories =
- (ODObjectNameSpace*)_fNmSpcMgr->HasNameSpace( ev, kODKind ) ;
- if ( kindCategories )
- {
- ODTypeList* categoriesList = kODNULL;
- ODType kind;
-
- iter = kindCategories->CreateIterator(ev) ;
- for (iter->First(ev, (ODISOStr*)&kind, (ODObject**)&categoriesList, &len);
- iter->IsNotComplete(ev);
- iter->Next(ev, (ODISOStr*)&kind, (ODObject**)&categoriesList, &len))
- {
- if ( categoriesList && categoriesList->Contains( ev, category ) )
- {
- thisEditorSet = _fSession->GetStorageSystem(ev)->CreateTypeList(ev,kODNULL);
-
- if ( somSelf->GetAllEditorsForKind(ev,
- kind, thisEditorSet ) )
- {
- esi = thisEditorSet->CreateTypeListIterator(ev);
- for ( ODEditor editor = esi->First(ev) ; esi->IsNotComplete(ev) ;
- editor = esi->Next(ev) )
- {
- editorList->AddLast(ev, editor);
- }
- ODDeleteObject( esi );
-
- retval = kODTrue;
- }
- ODDeleteObject( thisEditorSet );
- }
- }
- ODDeleteObject( iter );
- }
-
- SOM_CATCH_ALL
- ODDeleteObject( thisEditorSet );
- ODDeleteObject( iter );
- ODDeleteObject( esi );
- SOM_ENDTRY
-
- return retval ;
- }
-
- SOM_Scope ODEditor SOMLINK ODBindingSetSysPrefEditorForKind(ODBinding *somSelf, Environment *ev,
- ODEditor editor,
- ODKind kind)
- {
- ODBindingData *somThis = ODBindingGetData(somSelf);
- ODBindingMethodDebug("ODBinding","ODBindingSetSysPrefEditorForKind");
-
- ODEditor setEditor = kODNULL; ODVolatile(setEditor);
-
- // look it up in the editorkinds namespace
- SOM_TRY
-
- ODValueNameSpace* sysPrefEditorKindsNameSpace =
- (ODValueNameSpace*)_fNmSpcMgr->HasNameSpace( ev,
- kODSysPrefEditorKinds );
-
- if (sysPrefEditorKindsNameSpace)
- {
- ODULong strLength = ODISOStrLength((const ODISOStr)editor);
- setEditor = (ODEditor)ODNewPtrClear(strLength+1, kDefaultHeapID);
- ODISOStrNCopy((ODISOStr)setEditor,(const ODISOStr)editor, strLength);
- ValueNameSpaceRegister( sysPrefEditorKindsNameSpace, ev, (ODISOStr)kind,
- (ODPtr)setEditor, strLength+1 );
- _fNmSpcMgr->UpdatePreferences(ev);
- }
-
- SOM_CATCH_ALL
- ODDeleteObject(setEditor);
- SOM_ENDTRY
-
- return setEditor;
- }
-
- SOM_Scope ODEditor SOMLINK ODBindingSetSysPrefEditorForCategory(ODBinding *somSelf, Environment *ev,
- ODEditor editor,
- ODCategory category)
- {
- ODBindingData *somThis = ODBindingGetData(somSelf);
- ODBindingMethodDebug("ODBinding","ODBindingSetSysPrefEditorForCategory");
-
- ODEditor setEditor = kODNULL; ODVolatile(setEditor);
-
- SOM_TRY
-
- // look it up in the editorkinds namespace
- ODValueNameSpace* sysPrefEditorCategoriesNameSpace =
- (ODValueNameSpace*)_fNmSpcMgr->HasNameSpace( ev,
- kODSysPrefEditorCategories );
-
- if (sysPrefEditorCategoriesNameSpace)
- {
- ODULong strLength = ODISOStrLength((const ODISOStr)editor);
- setEditor = (ODEditor)ODNewPtrClear(strLength+1, kDefaultHeapID);
- ODISOStrNCopy((ODISOStr)setEditor,(const ODISOStr)editor, strLength);
- ValueNameSpaceRegister( sysPrefEditorCategoriesNameSpace, ev,
- (ODISOStr)category, (ODPtr)setEditor, strLength+1);
- _fNmSpcMgr->UpdatePreferences(ev);
- }
-
- SOM_CATCH_ALL
- ODDeleteObject(setEditor);
- SOM_ENDTRY
-
- return setEditor;
- }
-
- SOM_Scope ODEditor SOMLINK ODBindingGetSysPrefEditorForKind(ODBinding *somSelf, Environment *ev,
- ODKind kind)
- {
- ODBindingData *somThis = ODBindingGetData(somSelf);
- ODBindingMethodDebug("ODBinding","ODBindingGetSysPrefEditorForKind");
-
- ODEditor theEditor = kODNULL;
-
- SOM_TRY
-
- // look it up in the editorkinds namespace
- ODValueNameSpace* sysPrefEditorKindsNameSpace =
- (ODValueNameSpace*)_fNmSpcMgr->HasNameSpace( ev,
- kODSysPrefEditorKinds );
- if (sysPrefEditorKindsNameSpace)
- {
- ODULong valueLen = 0;
- ODBoolean sysPrefEditorFound = kODFalse;
-
- sysPrefEditorFound = ValueNameSpaceGetEntry(
- sysPrefEditorKindsNameSpace, ev, kind,
- (ODPtr*) &theEditor, &valueLen );
- }
-
- SOM_CATCH_ALL
- SOM_ENDTRY
-
- return theEditor;
- }
-
- SOM_Scope ODEditor SOMLINK ODBindingGetSysPrefEditorForCategory(ODBinding *somSelf, Environment *ev,
- ODCategory category)
- {
- ODBindingData *somThis = ODBindingGetData(somSelf);
- ODBindingMethodDebug("ODBinding","ODBindingGetSysPrefEditorForCategory");
-
- ODEditor theEditor = kODNULL;
-
- SOM_TRY
-
- // look it up in the editorkinds namespace
- ODValueNameSpace* sysPrefEditorCategoriesNameSpace =
- (ODValueNameSpace*)_fNmSpcMgr->HasNameSpace( ev,
- kODSysPrefEditorCategories );
-
- if (sysPrefEditorCategoriesNameSpace)
- {
- ODULong valueLen = 0;
- ODBoolean sysPrefEditorFound = kODFalse;
-
- sysPrefEditorFound = ValueNameSpaceGetEntry(
- sysPrefEditorCategoriesNameSpace, ev, category,
- (ODPtr*) &theEditor, &valueLen );
- }
-
- SOM_CATCH_ALL
- SOM_ENDTRY
-
- return theEditor;
- }
-
-
- SOM_Scope ODBoolean SOMLINK ODBindingGetUserStringForKind(ODBinding *somSelf, Environment *ev,
- ODKind kind,
- ODName* name)
- {
- ODBindingData *somThis = ODBindingGetData(somSelf);
- ODBindingMethodDebug("ODBinding","ODBindingGetUserStringForKind");
-
- ODBoolean result = kODFalse ;
- ODName* userString = kODNULL;
-
- SOM_TRY
-
- // look it up in the spaceName namespace
- ODValueNameSpace* userStringNameSpace =
- (ODValueNameSpace*)_fNmSpcMgr->HasNameSpace( ev, kODKindUserString );
-
- if (userStringNameSpace)
- result = ValueNameSpaceGetODName(userStringNameSpace, ev, kind, &userString );
-
- if (userString)
- *name = *userString;
- else
- InitIText(name);
-
- SOM_CATCH_ALL
- SOM_ENDTRY
-
- return result ;
- }
-
- SOM_Scope ODBoolean SOMLINK ODBindingGetUserStringForEditor(ODBinding *somSelf, Environment *ev,
- ODEditor editor,
- ODName* name)
- {
- ODBindingData *somThis = ODBindingGetData(somSelf);
- ODBindingMethodDebug("ODBinding","ODBindingGetUserStringForEditor");
-
- ODBoolean result = kODFalse ;
- ODName* userString = kODNULL;
-
- SOM_TRY
-
- // look it up in the spaceName namespace
- ODValueNameSpace* userStringNameSpace =
- (ODValueNameSpace*)_fNmSpcMgr->HasNameSpace( ev, kODEditorUserString );
-
- if (userStringNameSpace)
- result = ValueNameSpaceGetODName(userStringNameSpace, ev, editor, &userString );
-
- if (userString)
- *name = *userString;
- else
- InitIText(name);
-
- SOM_CATCH_ALL
- SOM_ENDTRY
-
- return result ;
- }
-
- SOM_Scope ODBoolean SOMLINK ODBindingGetUserStringForCategory(ODBinding *somSelf, Environment *ev,
- ODCategory category,
- ODName* name)
- {
- ODBindingData *somThis = ODBindingGetData(somSelf);
- ODBindingMethodDebug("ODBinding","ODBindingGetUserStringForCategory");
-
- ODBoolean result = kODFalse ;
- ODName* userString = kODNULL;
-
- SOM_TRY
-
- // look it up in the spaceName namespace
- ODValueNameSpace* userStringNameSpace =
- (ODValueNameSpace*)_fNmSpcMgr->HasNameSpace( ev, kODCategoryUserString );
-
- if (userStringNameSpace)
- result = ValueNameSpaceGetODName(userStringNameSpace, ev, category, &userString );
-
- if (userString)
- *name = *userString;
- else
- InitIText(name);
-
- SOM_CATCH_ALL
- SOM_ENDTRY
-
- return result ;
- }
-
- SOM_Scope ODBoolean SOMLINK ODBindingEditorSupportsKind(ODBinding *somSelf, Environment *ev,
- ODEditor editor,
- ODKind kind)
- {
- ODBindingData *somThis = ODBindingGetData(somSelf);
- ODBindingMethodDebug("ODBinding","ODBindingEditorSupportsKind");
-
- ODBoolean result = kODFalse;
-
- SOM_TRY
-
- // get the editorkinds namespace
- ODObjectNameSpace* editorkindsNameSpace =
- (ODObjectNameSpace*)_fNmSpcMgr->HasNameSpace( ev, kODEditorKinds );
-
- ODTypeList* kindsList = kODNULL;
-
- if (editorkindsNameSpace)
- {
- // Lookup the kinds list by editor class ID
- if (!editorkindsNameSpace->GetEntry( ev, (ODISOStr)editor,
- (ODObject**)&kindsList ))
- kindsList = (ODTypeList*)kODNULL;
- }
-
- result = (kindsList && kindsList->Contains(ev, kind));
-
- SOM_CATCH_ALL
- SOM_ENDTRY
-
- return result;
- }
-
- SOM_Scope void SOMLINK ODBindingGetAllEditors(ODBinding *somSelf, Environment *ev,
- ODTypeList* editorList)
- {
- ODBindingData *somThis = ODBindingGetData(somSelf);
- ODBindingMethodDebug("ODBinding","ODBindingGetAllEditors");
-
- ODObjectIterator* iter = kODNULL; ODVolatile(iter);
-
- SOM_TRY
-
- // get the editorkinds namespace
- ODObjectNameSpace* editorkindsNameSpace =
- (ODObjectNameSpace*)_fNmSpcMgr->HasNameSpace( ev, kODEditorKinds );
-
- if (editorkindsNameSpace)
- {
-
- ODTypeList* kindsList = kODNULL;
- ODEditor editor = kODNULL;
- ODULong len = 0;
-
- // iterate through editorKinds namespace
- iter = editorkindsNameSpace->CreateIterator(ev) ;
- for (iter->First(ev, (ODISOStr*)&editor, (ODObject**)&kindsList, &len);
- iter->IsNotComplete(ev);
- iter->Next(ev, (ODISOStr*)&editor, (ODObject**)&kindsList, &len))
- {
- editorList->AddLast(ev, editor);
- }
-
- ODDeleteObject( iter );
- }
-
- SOM_CATCH_ALL
- ODDeleteObject( iter );
- SOM_ENDTRY
- }
-
- SOM_Scope ODOSType SOMLINK ODBindingGetODOSTypeForKind(ODBinding *somSelf, Environment *ev,
- ODType kind)
- {
- ODBindingData *somThis = ODBindingGetData(somSelf);
- ODBindingMethodDebug("ODBinding","ODBindingODGetODOSTypeForKind");
-
- ODOSType theOSType = kODNULL;
-
- SOM_TRY
-
- // look it up in the editorkinds namespace
- ODValueNameSpace* kindOldMacOSTypeNameSpace =
- (ODValueNameSpace*)_fNmSpcMgr->HasNameSpace( ev,
- kODKindOldMacOSType );
-
- if (kindOldMacOSTypeNameSpace)
- {
- ODOSType* typePtr = kODNULL;
- ODULong valueLen = 0;
- if (ValueNameSpaceGetEntry(
- kindOldMacOSTypeNameSpace, ev, kind,
- (ODPtr*) &typePtr, &valueLen ))
- {
- theOSType = *typePtr;
- ODDeleteObject( typePtr );
- }
- }
-
- SOM_CATCH_ALL
- SOM_ENDTRY
-
- return theOSType;
- }
-
- SOM_Scope void SOMLINK ODBindingsomUninit(ODBinding *somSelf)
- {
- ODBindingData *somThis = ODBindingGetData(somSelf);
- ODBindingMethodDebug("ODBinding","ODBindingsomUninit");
-
- ODDeleteObject( _fBinding );
-
- ODBinding_parent_ODObject_somUninit(somSelf);
- }
-
- SOM_Scope ODSize SOMLINK ODBindingPurge(ODBinding *somSelf, Environment *ev,
- ODSize size)
- {
- ODBindingData *somThis = ODBindingGetData(somSelf);
- ODBindingMethodDebug("ODBinding","ODBindingPurge");
-
- ODSize returnVal = 0; ODVolatile( returnVal );
-
- SOM_TRY
-
- returnVal = _fBinding->Purge(size);
-
- SOM_CATCH_ALL
- WARN("Error %ld trying to purge in ODBindingPurge",ErrorCode());
- SetErrorCode(kODNoError); // dh - Eat the exception; Purge should not
- // propagate it because clients function
- // fine whether memory was purged or not.
- SOM_ENDTRY
-
- return(returnVal);
- }
-